package com.hmall.search.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hmall.feign.pojo.PageDTO;
import com.hmall.search.pojo.TbItem;
import com.hmall.search.web.request.RequestParams;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface ISearchService extends IService<TbItem> {
    /**
     *  搜索栏自动补全功能
     * @param prefix
     * @return
     */
    List<String> getSuggestions(String prefix);

    /**
     * 插入数据到索引库
     */
    void insert() throws IOException;


    /**
     * 根据搜索关键字,获取到对应的品牌,分类
     * @param params 用户输入的关键字和过滤条件
     * @return 对应的品牌,分类Map集合
     */
    Map<String, List<String>> filters(RequestParams params) throws IOException;

    /**
     * 删除商品同步ES数据
     * @param id
     */
    void deleteById(Long id) throws IOException;


    /**
     * 新增修改商品同步ES数据
     * @param id
     */
    void insertById(Long id) throws IOException;

    /**
     *   基本搜索功能
     * @param params
     * @return
     */
    PageDTO search(RequestParams params);
}
